Repository navigation
Run govulncheck by path in release preflight - #174
Conversation
Since #159 routed release-preflight through locked-tools, only the pinned Go's bin is on PATH. `go install` still writes govulncheck to GOBIN or the first GOPATH entry's bin, so the next line failed with `govulncheck: command not found` (exit 127) and every release with go_vulnerability_scan: true stopped before building. Call the binary at the path go install uses. Callers with the input off (the default) never run this step; for callers with it on, the step failed every time, so nothing that passes today changes, and a govulncheck already on PATH can no longer shadow the pinned v1.7.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Superseded — see the current review report for commit
|
General PR Review: Run govulncheck by path in release preflightBlocking Issues: 0 | Suggestions: 0 | Threads Resolved: 0 Review SummaryThe "Check for known vulnerabilities" step in Security IssuesNone found. Correctness IssuesNone found. SuggestionsNone. Reviewed commit: |
Problem
Since #159 (2026-10-21) routed
release-preflightthroughlocked-tools, only the pinned Go'sbinis onPATH. The "Check for known vulnerabilities" step runsgo install golang.org/x/vuln/cmd/govulncheck@v1.7.0, which writes the binary toGOBINor the firstGOPATHentry'sbin. The next line then fails withgovulncheck: command not found(exit 127). Every release withgo_vulnerability_scan: truestops in preflight before building. ConductorOne/c1i's v0.10.0 release hit this twice (run 42847996674); its v0.9.2 released on the workflow version from before #159.Fix
Call the binary at the path
go installuses:$(go env GOBIN), else the first entry of$(go env GOPATH)plus/bin. Four lines, in that one step.Compatibility
go_vulnerability_scan: true, which defaults tofalse. No other input, output, permission or job changes.govulncheckalready onPATHcan no longer shadow the pinned v1.7.0.Verified
The step's script was extracted from the workflow and run against ConductorOne/c1i at
v0.10.0. The environment matched the runner's: only the locked Go 1.27.3 onPATH,GOTOOLCHAIN=local,GOFLAGS=-mod=readonly, and a fresh HOME.GOPATHunsetGOPATHsingle entryGOPATHmulti-entryGOBINsetPATHpython3 scripts/test-tool-integrity.py(28 OK, 1 skipped),go vet ./...,go test ./...andmake test-scriptspass. The PowerShell tests were skipped because there's no pwsh locally. Nothing asserts on this step's text, and the README anddocs/release-workflow.mddescribe only the input, so they stay accurate. Callers pick up the fix oncev4moves past it.🤖 Generated with Claude Code